A barcode is an optical machine-readable representation of data, which identifies, for example, a product or object. The barcode has become a ubiquitous element in commercial and industrial use. For example, the barcode not only is used to identify items, e.g., product or objects, but it also helps to track items and provide other commercial uses, e.g., provide product information, discounts or special marketing offers.
Barcodes can be used to track numerous different items, ranging from rental cars to airline luggage. Barcodes can also be used to provide delivery information for sorting and sequencing of items into a delivery order sequence. For example, barcodes are used with first class mail, registered mail, express mail and parcels, as well as circulars and other types of mass mailings in order to sequence such items into a delivery order. By way of example, the United States Postal System (USPS) uses barcode symbology known as POSTNET (Postal Numeric Encoding Technique) to assist in sorting and sequencing the mail. POSTNET is being replaced by the Intelligent Mail barcode (also known as OneCode Solution).
Barcodes systematically represent data by varying the widths and spacings of parallel lines. One type of barcode that is used mainly for postal applications is a 4-state barcode. This type of barcode has constant bar and space width. Data is encoded in the barcode by varying the height of the bars. There are four types of parallel lines: tracker, ascender, descender and full. A tracker bar spans the middle third of the coding region; whereas, an ascender bar spans the top and middle third of the coding region and a descender bar spans the middle and bottom third of the coding region. A full bar spans the entire coding region. In the past most of these barcodes were designed with an extra bar at either end (called guard or framing bars) to help avoid misalignment during decoding. They might also have internal sequences of bars with fixed patterns (UPU S18d) for the same purpose. Newer barcodes designs however, often use different more integrated methods for barcode alignment that do not require these alignment specific bars.
Barcodes can be scanned by optical scanners called barcode readers. These optical scanners can be a handheld device, e.g., portable digital assistants, stationary devices or other computing devices. In any scenario, the barcode reader is designed to read and decode the barcode. However, decoding of barcodes is a complicated process, particularly when the barcode is damaged or obscured in some manner. For example, the barcode reader can have difficulty decoding the barcode due to it being partially obscured within a window of an envelope, cut off or damaged, rotated with respect to the barcode reader, amongst a host of other conceivable issues.
In an attempt to compensate for such issues, many different error detection and compensation processes have been developed. Illustratively, a widely used process is the Reed-Solomon approach. The Reed-Solomon approach is a systematic way of building codes that could detect and correct multiple random symbol errors. Although this is a very effective approach, for a set of several different Reed Solomon based 4-State barcodes, incorrect identification (confusing one barcode for another) combined with rotation and alignment problems may result in false positive Reed Solomon decodes. This problem is significantly more likely to occur when the misalignment is a multiple of 3 bars (the number of bars that together form each Reed Solomon character).
In an environment where there are several different types of 4-state barcodes that may be present it becomes difficult for the decoder to balance the need to decode damaged barcodes with the need to avoid false positive decodes due to confusing the barcodes types.